3-on-5 off rota

Hello,

I’m trying to create the following rota in PagerDuty, but I can’t get my head around how to construct this in the schedule.

Each individual works 3 days on call, followed by 5 off, repeating indefinitely.

||1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|
|PersonA|ON|ON|ON||||||ON|ON|ON||||||
|PersonB|||ON|ON|ON||||||ON|ON|ON||||
|PersonC||||||ON|ON|ON||||||ON|ON|ON|
|Resultant|A|A|A+B|B|B|C|C|C|A|A|A+B|B|B|C|C|C|

Are there any tips for this type of arrangement?

Hi @bleepbloop,

I don’t think there’s any programmatic way to enter this into PagerDuty:

|         |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|13|14|15|16|
|PersonA  |ON|ON|ON|  |  |  |  |  |ON|ON|ON|  |  |  |  |  |
|PersonB  |  |  |ON|ON|ON|  |  |  |  |  |ON|ON|ON|  |  |  |
|PersonC  |  |  |  |  |  |ON|ON|ON|  |  |  |  |  |ON|ON|ON|
|Resultant|A |A |AB|B |B |C |C |C |A |A |AB|B |B |C |C |C |

What I’d recommend (and what I use for my shift-rotation NOC team) is having an empty Escalation Policy (or one where someone is set as the default) and always schedule overrides.

You can do this via the API: Schedules/post_schedules_id_overrides

Hope that helps,
Simon

Thanks @simonfiddaman. I think that’s the way I’ll need to do it also. Thanks for fixing up the Markdown also (I guess tables aren’t supported) :slight_smile:

The API isn’t a terrible idea - I do have another source I can pull the rota from.

Cheers

Using the API for it certainly works better (longevity / UX-wise) than asking everyone to manually set overrides (and even then there’s the ā€œI’m always the base - please set an override!ā€ which is easy because you press the schedule entry and hit ā€œoverrideā€, and the ā€œjust work out what your own start and end time for overrides should beā€ method which is haphazard and sadface UX).

You situation is probably even easier than mine. I usually have 2 on shift, occasionally 3 and sometimes 1 (due to sickness, poorly planned leave, etc.) so I have two schedules on an EP layer - ā€œleftā€ and ā€œrightā€.

You should be able to do the same thing - three schedules (basically one for each individual, which is weird, but stay with me…) and all three are on the same Escalation Policy Level (e.g. Level 1).

You use the API to programmatically set an individual’s schedule using Overrides (which will have a start, end time so no choosing from the UI) and whoever is set will be assigned (two will be assigned for the overlap days 3, 11).

If you get stuck creating an empty schedule, populate it with a single person (e.g. the person this schedule is for) initially at Level 1, then fill in some overrides (1-2 weeks worth usually makes it work), then you should be able to delete Level 1, leaving only the overrides. I haven’t had to do this in a long time so the exact thresholds and whether or not you have to create/populate the initial Level 1 may have changed.

Good luck,
@simonfiddaman

1 Like

Having said that, I did hear that PagerDuty was looking for feedback on how people want to use Schedules, so maybe drop a ticket in, too, just to let them know you have a crazy wacky use case that works for you.

Thanks, I hadn’t really considered multiple schedules but it works a treat!

I’ve created a ā€˜Team A’, ā€˜Team B’ and ā€˜Team C’ schedule per your suggestion and added all of these at Level 1 of a common EP.

Creating an empty schedule wasn’t too difficult, and the FAQ Creating a Blank Schedule still works.
Now I just need to write a horrible script to manage the overrides for me. :slight_smile:

On reflection, what I really expected from PagerDuty is the kind of recurrence options you’d get from Outlook or Google Calendar.
e.g. Every X day/week/month repeat a shift of duration Y. (where X = 8 days and Y = 3 days for my use case)
I’ll see if I can pose this in better terms for a feature request.

1 Like

Hello! PagerDuty Product Manager here. Yes, we are definitely taking feedback on how customers want to use schedules and this thread is great input as we continue to improve our product. There isn’t anything that I can announce around Schedules right now, but just wanted to acknowledge this question/request and let you know that it’s on the product team’s radar!